package com.sojson.util.pay.wx.bean;

import java.util.List;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.sojson.util.pay.wx.bean.child.param.WxQyPamApplyData;
import com.sojson.util.pay.wx.bean.child.param.WxQyPamApprover;
import com.sojson.util.pay.wx.bean.child.param.WxQyPamSummaryList;

import lombok.Data;

/**
 * 企业微信审批参数
 * 
 * @author liu
 * @date 2023-01-11
 */
@Data
public class WxQyApplyeventParam {

    /** 调用接口凭证 */
    @JsonProperty("access_token")
    @JSONField(name = "access_token")
    private String accessToken;
    /** 申请人userid */
    @JsonProperty("creator_userid")
    @JSONField(name = "creator_userid")
    private String creatorUserid;
    /** 模板id */
    @JsonProperty("template_id")
    @JSONField(name = "template_id")
    private String templateId;
    /**
     * 审批人模式:</br>
     * 0-通过接口指定审批人、抄送人（此时approver、notifyer等参数可用）</br>
     * 1-使用此模板在管理后台设置的审批流程(需要保证审批流程中没有“申请人自选”节点)，支持条件审批</br>
     * 默认为0</br>
     */
    @JsonProperty("use_template_approver")
    @JSONField(name = "use_template_approver")
    private String useTemplateApprover;
    /** 提单者提单部门id，不填默认为主部门 */
    @JsonProperty("choose_department")
    @JSONField(name = "choose_department")
    private String choosedepartment;
    /** 
     * 审批流程信息,用于指定审批申请的审批流程</br>
     * 支持单人审批、多人会签、多人或签，可能有多个审批节点，仅use_template_approver为0时生效</br>
     */
    @JsonProperty("approver")
    @JSONField(name = "approver")
    private List<WxQyPamApprover> approver;
    /** 抄送人节点userid列表，仅use_template_approver为0时生效 */
    @JsonProperty("notifyer")
    @JSONField(name = "notifyer")
    private String notifyer;
    /** 抄送方式：1-提单时抄送（默认值）； 2-单据通过后抄送；3-提单和单据通过后抄送。仅use_template_approver为0时生效 */
    @JsonProperty("notify_type")
    @JSONField(name = "notify_type")
    private String notifyType;
    /** 
     * 审批申请数据</br>
     * 可定义审批申请中各个控件的值，其中必填项必须有值，选填项可为空</br>
     * 数据结构同“获取审批申请详情”接口返回值中同名参数“apply_data”</br>
     */
    @JsonProperty("apply_data")
    @JSONField(name = "apply_data")
    private WxQyPamApplyData applyData;
    /** 摘要信息，用于显示在审批通知卡片、审批列表的摘要信息，最多3行 */
    @JsonProperty("summary_list")
    @JSONField(name = "summary_list")
    private List<WxQyPamSummaryList> summaryList;

}